package Dao.Process;

import Entity.Process.StageCheck;

import java.sql.Connection;

public interface StageCheckDao {

    /**
     * 根据学号和论文状态获取初稿定稿终稿的结果
     *
     * @param SNO   学号
     * @param phase 状态
     * @return StageCheck
     */
    StageCheck getStageCheckBySNOAndPhase(String SNO, String phase, Connection conn);

    /**
     * @param SNO     学号
     * @param result  结果
     * @param opinion 意见
     * @param state   转态
     * @return 操作影响的结果
     */
    Integer updateCheckBySNOAndState(String SNO, String result, String opinion, String state, Connection conn);


    /**
     * 往表中插入一条数据
     *
     * @param stageCheck 要插入的数据
     * @return 操作影响的行数
     */
    Integer insertState(StageCheck stageCheck, Connection conn);


    /**
     * 根据指导老师的编号获取任务书完成的人数
     *
     * @param tno   指导老师编号
     * @param type  1是查询所有人数 2是查询完成的人数
     * @param phase 论文的阶段 初稿 定稿 终稿
     * @return 任务书完成的人数
     */
    Integer getSumByTNO(String tno, Integer type, String phase, Connection conn);


    /**
     * 根据指学号的编号获取任务书完成的人数
     *
     * @param sno   指导老师编号
     * @param phase 论文的阶段 初稿 定稿 终稿
     * @return 任务书完成的人数
     */
    Integer getSumBySNO(String sno, String phase, Connection conn);


    /**
     * 更新开题报告的文件内容
     *
     * @return 操作影响的行数
     */
    Integer updateReportFile(StageCheck stageCheck, Connection conn);

}
